home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / easyx / data1.cab / Example_Files / EX_5 / Form1.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1998-11-03  |  4.2 KB  |  121 lines

  1. VERSION 5.00
  2. Object = "{5A65A9C0-089F-11D2-88AD-0000B45C4CF6}#1.2#0"; "EASYX.OCX"
  3. Begin VB.Form Form1 
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   3195
  6.    ClientLeft      =   60
  7.    ClientTop       =   345
  8.    ClientWidth     =   4680
  9.    Icon            =   "Form1.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   3195
  12.    ScaleWidth      =   4680
  13.    StartUpPosition =   3  'Windows Default
  14.    Begin PROJECTEXLibCtl.EasyX EasyX 
  15.       Left            =   1200
  16.       OleObjectBlob   =   "Form1.frx":014A
  17.       Top             =   600
  18.    End
  19. Attribute VB_Name = "Form1"
  20. Attribute VB_GlobalNameSpace = False
  21. Attribute VB_Creatable = False
  22. Attribute VB_PredeclaredId = True
  23. Attribute VB_Exposed = False
  24. Option Explicit
  25. Dim SpriteArray(15) As Sprite
  26. Dim SurfaceOne As Long
  27. Const SpriteWidth As Long = 25
  28. Const SpriteHeight As Long = 25
  29. Const MovePrLoop As Long = 10
  30. Private Sub Form_Load()
  31. Dim I As Integer, J As Integer, P As Integer
  32. Dim rt As Long
  33. Dim AppPath As String
  34. AppPath = App.Path & "\"
  35. t forget this
  36. EasyX.Window = Me.hWnd
  37. ''''''''''''''''''''''
  38. 'initialize
  39. rt = EasyX.InitDirectDraw(640, 480, 8)
  40. If rt <> EX_OK Then
  41.     MsgBox "Direct draw could not initialize", vbOKOnly, "Failure"
  42.     Exit Sub
  43. End If
  44. 'Initialize DInput
  45. rt = EasyX.InitDirectInput()
  46. If rt <> EX_OK Then
  47.     MsgBox "Direct input could not initialize", vbOKOnly, "Failure"
  48.     Exit Sub
  49. End If
  50. 'Create the keyboard
  51. rt = EasyX.CreateKeyboard
  52. If rt <> EX_OK Then
  53.     MsgBox "Direct input could not initialize", vbOKOnly, "Failure"
  54.     Exit Sub
  55. End If
  56. EasyX.AcquireKeyboard
  57. 'create the bitmap surface
  58. SurfaceOne = EasyX.LoadBitmapFile(AppPath & "balls.bmp", 0)
  59. If SurfaceOne < 0 Then
  60.     EasyX.EndDirectX
  61.     MsgBox "Could not create bitmap surface", vbOKOnly, "Failure"
  62.     Exit Sub
  63. End If
  64. 'create the sprites
  65. 'Define the sprites of the newly created surface
  66.     For I = 1 To 4
  67.         For J = 1 To 4
  68.                 SpriteArray(((I - 1) * 4) + J - 1).Number = EasyX.MakeSprite( _
  69.                                                             (J - 1) * SpriteWidth, _
  70.                                                             (I - 1) * SpriteHeight, _
  71.                                                             J * SpriteWidth, _
  72.                                                             I * SpriteHeight, SurfaceOne)
  73.         Next J
  74.     Next I
  75. 'randomize the start location and direction of the sprites
  76. For I = 0 To UBound(SpriteArray)
  77.     SpriteArray(I).PointX = Int((640 - SpriteWidth) * Rnd * 1)
  78.     SpriteArray(I).PointY = Int((480 - SpriteWidth) * Rnd * 1)
  79.     SpriteArray(I).XDirection = 1
  80.     SpriteArray(I).YDirection = -1
  81. Next I
  82. 'Everything is set start the timer
  83. RunMain
  84. End Sub
  85. Private Sub RunMain()
  86. Dim I As Integer
  87.     If EasyX.GetKeyState(EX_ESCAPE) = EX_KEYDOWN Then
  88.         EasyX.EndDirectX
  89.         Unload Me
  90.         Exit Do
  91.     End If
  92.     EasyX.FillSurface 0, EX_PRIMARYSURFACE
  93.     For I = 0 To UBound(SpriteArray)
  94.         
  95.         SpriteArray(I).PointX = SpriteArray(I).PointX + MovePrLoop * SpriteArray(I).XDirection
  96.         SpriteArray(I).PointY = SpriteArray(I).PointY + MovePrLoop * SpriteArray(I).YDirection
  97.         
  98.         If SpriteArray(I).PointX < 0 Then
  99.             SpriteArray(I).PointX = 0
  100.             SpriteArray(I).XDirection = SpriteArray(I).XDirection * -1
  101.         ElseIf (SpriteArray(I).PointX + SpriteWidth) > 640 Then
  102.             SpriteArray(I).PointX = 640 - SpriteWidth
  103.             SpriteArray(I).XDirection = SpriteArray(I).XDirection * -1
  104.         End If
  105.         
  106.         If SpriteArray(I).PointY < 0 Then
  107.             SpriteArray(I).PointY = 0
  108.             SpriteArray(I).YDirection = SpriteArray(I).YDirection * -1
  109.         ElseIf SpriteArray(I).PointY + SpriteHeight > 480 Then
  110.             SpriteArray(I).PointY = 480 - SpriteHeight
  111.             SpriteArray(I).YDirection = SpriteArray(I).YDirection * -1
  112.         End If
  113.         
  114.        EasyX.DrawSprite SpriteArray(I).PointX, SpriteArray(I).PointY, SpriteWidth, SpriteHeight, SpriteArray(I).Number
  115.         
  116.     Next I
  117.     EasyX.FlipSurface
  118.     DoEvents
  119.            
  120. End Sub
  121.